package com.pingba.service.friend;

import com.pingba.entity.friend.FriendApply;
import com.pingba.service.BaseService;

import java.util.List;

/**
 * Created by Administrator on 2015/11/9 0009.
 */
public interface FriendApplyService extends BaseService<FriendApply, Long> {


    /**
     * 获取该用户所有的对其他用户的好友申请
     * @param userId
     * @return
     */
    List<FriendApply> getMyApplySendHistory(long userId);

    /**
     * 获取该用户所有未读的好友申请
     * @param userId
     * @return
     */
    List<FriendApply> getMyUnhandled(long userId);


    /**
     * 获取所有对该用户的好友申请
     *
     * @param userId
     * @return
     */
    List<FriendApply> getMyApplyRcvHistory(long userId);

    void setHandled(long fromUserId, long toUserId);

    /**
     * 将所有对该用户的好友申请都设置为已读
     *
     * @param toUserId
     */
    void setAllHandled(long toUserId);


    /**
     * 增加好友申请的消息
     * @param apply
     * @return true  / false  之前就存在申请，返回失败
     */

    boolean addApply(FriendApply apply);

    /**
     * 同意用户的申请，正式成为好友关系
     *
     * @param fromUserId
     * @param toUserId
     */
    void agree(long fromUserId, long toUserId);

    /**
     * 拒绝用户的申请
     *
     * @param fromUserId
     * @param toUserId
     */
    void deny(long fromUserId, long toUserId);
}
